// class Solution {
// public:
//     int majorityElement(vector<int>& nums) {
//         unordered_map<int,int>hash;
//         int ans=0,cnt=0;
//         for(int n:nums)
//         {
//             hash[n]++;
//             if(hash[n]>cnt)
//             {
//                 cnt=hash[n];
//                 ans=n;
//             }
//         }

//         return ans;
//     }
// };
class Solution {
public:
    int majorityElement(vector<int>& nums) {
        int vote=0,x=0;
        for(int num:nums)
        {
            if(vote==0) x=num;
            vote+=num==x?1:-1;
        }
        return x;
    }
};
